package com.boot.security.server.service;

import com.boot.security.server.common.Result;
import com.boot.security.server.model.OverseeQuestion;
import com.boot.security.server.model.domain.MAnnex;
import com.boot.security.server.model.param.OverseeQuestionParam;
import com.boot.security.server.page.table.PageTableRequest;
import com.boot.security.server.page.table.PageTableResponse;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.List;
import java.util.Map;

public interface MOverseeQuestionService {
    Result agreeExamine (OverseeQuestionParam param);

    Result notAgreeExamine (OverseeQuestionParam param);

    String getStatus (Long id);

    String getYiBan (Integer id);

    /**
     * 录入问题
     * @param param
     * @return
     */
    Result saveQuestion (OverseeQuestionParam param);

    /**
     * 修改
     * @param param
     * @return
     */
    Result updateQuestion (OverseeQuestionParam param);

    /**
     * 录入保存至草稿箱
     * @param param
     * @return
     */
    Result saveDrafts (OverseeQuestionParam param);

    /**
     * 录入草稿箱修改
     * @param param
     * @return
     */
    Result updateDrafts (OverseeQuestionParam param);

    /**
     * 录入草稿箱提交
     * @param param
     * @return
     */
    Result draftsSave (OverseeQuestionParam param);

    List<OverseeQuestion> findByStatus ();

    /**
     * 反馈提交
     * @param param
     * @return
     */
    Result feedBack (OverseeQuestionParam param) throws ParseException;

    void deletePathOne (Integer id);

    void deletePathTwo (Integer id);

    /**
     * 导出明细
     * @param select
     */
    void exportDetailed (List<OverseeQuestion> select, HttpServletResponse response);

    /**
     * 代办跳转
     * @param id
     * @param request
     * @param response
     */
    void agencyLogin (Integer id, HttpServletRequest request, HttpServletResponse response) throws Exception;

    /**
     * 查询待删除附件
     * @param id
     * @return
     */
    Map<String, Object> file (Integer id,Integer userId);

    Result saveReport (MAnnex mAnnex);

    /**
     * 汇总导出
     * @param mOverseeQuestions
     * @param response
     */
    void export (List<OverseeQuestion> mOverseeQuestions, HttpServletResponse response);

    Result deleteYearReport (Integer id);

    void deletePathDrafs (Integer id);

    /**
     * 已办
     * @param request
     * @return
     */
    PageTableResponse yibanList (PageTableRequest request);

    /**
     * 草稿箱
     * @param request
     * @return
     */
    PageTableResponse draftsList (PageTableRequest request);

    /**
     * 代办
     * @param request
     * @return
     */
    PageTableResponse list (PageTableRequest request);

    /**
     * 汇总
     * @param request
     * @return
     */
    PageTableResponse allList (PageTableRequest request);

    /**
     * 详细
     * @param request
     * @return
     */
    PageTableResponse detailList (PageTableRequest request);
}
